/**
 * 什么是cors
 * cors cross-origin resource sharing 跨域资源共享 由一系列HTTP相应头组成，这些HTTP响应头决定浏览器是否阻止前端js代码跨域获取资源
 * 浏览器的同源安全策略默认阻止跨域获取资源，但如果接口服务器配置了cors相关的HTTP响应头，就可以解除浏览器前端的跨域访问限制
 * 
 * 解决跨域
 * 1、cors 主流
 * 2、JSONP 只支持get请求
 * 
 * 
 * 使用cors中间件解决跨域问题
 * npm install cors
 * require导入中间件
 * app.use()注册中间件
 * 
 * 
 * 使用cors注意事项
 * cors主要在服务器端进行配置，客户端浏览器无需做任何额外的配置，即可请求开启了cors的接口
 * cors在浏览器中有兼容性，只有支持XMLHttpRequestLevel2的浏览器，才能正常访问开启了cors的服务器接口（例如ie10+ chrome4+ FireFox 3.5+
 * 
 * cros 跨域资源共享
 * cors响应头部-Access-Control-Allow-Origin
 * 
 * 响应头部中可以携带一个Access-Control-Allow-Origin 字段，其语法如下
 * Access-Control-Allow-Origin:<orgin> | *
 * 其中，origin参数指定了允许访问该资源的外域URL,例如：
 * res.setHeader('Access-Control-Allow-Origin','http://itcast/.cn') 表示将只允许来自http://itcast.cn的请求
 * * 表示是全部请求都可以
 * 
 * cors响应头部-Access-Control-Allow-Methods
 * 默认情况下cors仅支持客户端发起的GET,POST,HEAD请求
 * 如果客户端希望通过PUT,DELETE等方式请求服务器的资源，则需要在服务器端，通过Access-Control-Allow-Methods来指明实际
 * 请求所允许使用的http方法
 * 
 * cors响应头部-Access-Control-Allow-Headers
 * 默认情况下，cors仅支持客户端向服务器发送如下的9个请求头
 * Accept/Accept-Language/Content-Language/DPR/Downlink/Save-Data/Viewport-Width/Width/Content-Type(
 * 值仅限于text/plain,multipart/form-data,application/x-www-form-urlencoded三者之一)
 * 如果客户端向服务端发送了额外的请求头信息，则需要再服务器端，通过Access-Control-Allow-Headers对额外的请求头进行声明
 * 否则这次请求会失败！
 * 
 * 简单请求方式
 * 1、请求方式为GET,POST,HEAD三者之一
 * 2、HTTP头部信息不超过以上默认情况下的9个请求头
 * 
 * 预检请求
 * 1、请求方式为GET,POST,Head之外的请求Method类型
 * 2、请求头中包含自定义头部字段
 * 3、向服务器发送了appliction/json格式的数据
 * 
 * 在浏览器与服务器正式通信之前，浏览器会先发送OPTION请求进行预检，以获知服务器是否允许该实际请求，所以这一次
 * 的OPTION请求称为‘预检请求’，服务器成功响应预检请求后，才会发送真正的请求，并且携带真实数据
 * 
 * 简单请求和预检请求的区别
 * 简单请求的特点：客户端与服务器之间只会发生一次请求
 * 预检请求的特点：客户端与服务器之间会发生两次请求，OPTION预检请求成功之后，才会发起真正的请求
 * 
 * 实现JSONP接口的步骤
 * 1、获取客户端发送过来的回调函数的名字
 * 2、得到要通过JSONP形式发送给客户端的数据
 * 3、根据前两步得到的数据，拼接出一个函数调用的字符串
 * 4、把上一步拼接得到的字符串，响应给客户端的<script>标签进行解析执行
 * 
 */

const express = require('express')
const apiRouter = require('./router/apiRouter')
const cors = require('cors')

const app = express();
app.use(express.urlencoded({extended:false}))

app.use(cors())

app.use('/api',apiRouter)


app.listen('80',()=>{
  console.log('服务器启动了。。。。http://127.0.0.1')
})